package com.demo.project_template.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Author ZhangKeChen  🤙🤙🏼🤙🏽
 * @Date 2022/11/28
 * @Description 限流注解
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RateLimiter {


    /**
     * 资源的key,唯一
     * 作用：不同的接口，不同的流量控制
     */
    String limiterKey() default "";

    /**
     * 最多的访问限制次数
     */
    long count() default 3;

    /**
     * 过期时间也可以理解为单位时间，单位秒，默认60
     */
    long expire() default 10;


}
